import Set from "./set.js";


// ------------ 封装的集合结构测试 ---------------//
alert("集合结构测试 START");
const set = new Set();

// add() 测试
alert("add() 测试");
set.add("abc");
alert("add('abc')");
alert(set.values());
set.add("abc");
alert("add('abc')");
alert(set.values());
set.add("123");
alert("add('abc')");
alert(set.values());
set.add("zxc");
alert("add('abc')");
alert(set.values());

// has() 测试
alert("has() 测试");
alert("set.has('123') -- " + set.has("123"));
alert("set.has('456') -- " + set.has("456"));

// remove() 测试
alert("remove('abc') 测试");
set.remove("abc");
alert(set.values());

// size() 测试
alert("size() 测试");
alert(set.size());

// values() 测试
alert("values() 测试");
alert(set.values());

// clear() 测试
alert("clear() 测试");
set.clear();
alert(set.values());

// ------- 集合间操作测试 --------//
alert("集合间操作测试");
const setA = new Set();
setA.add("111");
setA.add("222");
setA.add("333");
alert("setA -- " + setA.values());

const setB = new Set();
setB.add("111");
setB.add("222");
setB.add("444");
setB.add("555");
alert("setB -- " + setB.values());

// 求两个集合的并集 union() 测试
alert("求两个集合的并集 union() 测试");
alert(setA.union(setB).values());

// 求两个集合的交集 intersection() 测试
alert("求两个集合的交集 intersection() 测试");
alert(setA.intersection(setB).values());

// 求集合 A 和集合 B 的差集，difference() 测试
alert("求集合 A 和集合 B 的差集，difference() 测试");
alert(setA.difference(setB).values());

// 求集合 A 是否是集合 B 的子集，subset() 测试
alert("求集合 A 是否是集合 B 的子集，subset() 测试");
alert(setA.subset(setB));


alert("集合结构测试 END");